今日の目標
昨日の続き。昨日「問題なさげ。」とか書いてたけどお前はどんなテストしたんだよ!って話です。
PHP Warning: file_get_contents(): https:// wrapper is disabled in the server configuration by allow_url_fopen=0
#1 無料Webレンタルサーバーではよくあること
GP君、Herokuを使う
何を思ったのかGP君、まずherokuにアプリケーションサーバーを建てようという考えに至りました。ということでphpでしていた処理をnode.jsに書き換えてappサーバーを立てて「そこにアクセスする」ようにしましたが結局「そこにアクセスする」という処理(get_file_contents)がエラってるので直るはずもなく...
node.jsでのコーディング
ちょっと脇道にそれてappサーバーのプログラムであるnode.jsのプログラムも何気に人生初で書いたのでどんなものを使ったか紹介しておこうと思います。
やりたかった処理は クエリ文字列を解析 ー> 外部サーバーにアクセス ー> 帰ってきたデータ整理してを呼び出し元に返すという処理です。まずクエリ文字列の解析はURLモジュールを使ってやりました。こんな感じ
const url = require('url');
let server = http.createServer();
server.on('request', (req, res) => {
// req.url ーー アクセス元URL
url.parse(req.url, true).query // これでいける
});
#2 https://stackoverflow.com/questions/20355136/must-res-end-be-called-in-express-with-node-js
GP君、cURLが救いになりそうだという情報を仕入れる
前章が成功しなかったのでかなりやる気も落ちていたのですが、根気強く調べた結果cURLを使えばいけそうだという情報を耳にしました。ローカル環境の方にcURLがなかったのでインストールして{Debian(ubuntu)}
sudo apt-get install php-curl
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, さっき作ったappサーバーへのURL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$url = curl_exec($ch);
curl_close($ch);
まとめ
cURLが神だということがわかったので簡単にcURLが使えるような関数でも使って僕もレンタルサーバーでバリバリ外部サイトアクセスできるようにしようネ。